57

     # Markdown - преобразование md -» html

Содержание

  1. Пример преобразования md -> html
  2. Расширения markdown
  3. Использование расширения fenced_code
  4. Использование расширения codehilite

1. Пример преобразования md -> html

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import markdown

md_post = ""
myfile = open(file_location, "r")

for line_id, content in enumerate(myfile):
    if line_id >= 2:
        md_post += content
myfile.close()

post = markdown.markdown(md_post, extensions=["fenced_code", "codehilite"])

2. Расширения markdown

У него есть много модулей, которые можно подключать в зависимости от потребностей, используя, как отдельно, так и совместно, например::

post = markdown.markdown(md_post, extensions=["fenced_code"])
post = markdown.markdown(md_post, extensions=["codehilite"])
post = markdown.markdown(md_post, extensions=["fenced_code"], ["codehilite"])
post = markdown.markdown(md_post, extensions=['toc'])

Чем больше расширений подключается, тем больше html-кода генерируется.

3. Использование расширения fenced_code

post = markdown.markdown(md_post, extensions=["fenced_code"])

Если использовать только это расширение, то можно передавать классы и id, в преобразованный текст. Для этого прописываем в блок кода: .python. Тем самым блок кода будет иметь класс: class="python"

``` .python
print("Python example")
```

Либо через фигурные скобки, если надо передать несколько значений:

``` { .html, #python }
<p>HTML Document</p>
print("Python example")
```

Передача html напрямую:

``` { .my_class #primer style="color: #456; background: lightgreen;" } 
```

3. Использование расширения codehilite

Активация модуля:

post = markdown.markdown(md_post, extensions=["codehilite"])

Данный модуль генерирует класс .codehilite, который можно настроить в css:

.codehilite {
      border: 1px solid #2da12d;
      ...
    }

Также расширение разного рода настройки нумерации строк:

``` { .lang linenos=true linenostart=1 hl_lines="2-3 9" title="Пример блока" }
```

Вставка нумерации

``` { .bash linenos=true linenostart=1 }
```